home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-11-08 | 6.1 KB | 221 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: FWPriDeb.cpp
- // Release Version: $ 1.0d11 $
- //
- // Copyright: (c) 1993, 1995 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #include "FWFound.hpp"
-
- // Need to include first so that FW_DEBUG is properly defined
- #ifndef FWPRIDEB_H
- #include "FWPriDeb.h"
- #endif
-
- #ifdef FW_DEBUG
-
- #ifndef FWPRISTR_H
- #include "FWPriStr.h"
- #endif
-
- #ifndef FWPRIMEM_H
- #include "FWPriMem.h"
- #endif
-
- #if defined(FW_BUILD_MAC) && !defined(__TYPES__)
- #include <Types.h>
- #endif
-
- #if defined(THINK_CPLUS) && !defined(__PASCAL__)
- #include <Pascal.h>
- #endif
-
- #if defined(FW_BUILD_WIN) && !defined(_INC_WINDOWS)
- #include <Windows.h>
- #endif
-
- #if FW_LIB_EXPORT_PRAGMAS
- #pragma lib_export on
- #endif
-
- FW_CDebugConsole *FW_CDebugConsole::gDebugConsole = &FW_CDebugConsole::sDebugConsole;
- FW_CDebugConsole FW_CDebugConsole::sDebugConsole;
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::FW_CDebugConsole
- //----------------------------------------------------------------------------------------
-
- FW_CDebugConsole::FW_CDebugConsole()
- : fBufferStream(fBuffer, kBufferSize)
- {
- fFatalErrorStream = &fBufferStream;
- fWarningStream = &fNullStream;
- fNotificationStream = &fNullStream;
- }
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::~FW_CDebugConsole
- //----------------------------------------------------------------------------------------
-
- FW_CDebugConsole::~FW_CDebugConsole()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::GetConsole
- //----------------------------------------------------------------------------------------
-
- FW_CDebugConsole* FW_CDebugConsole::GetConsole()
- {
- return gDebugConsole;
- }
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::SetConsole
- //----------------------------------------------------------------------------------------
-
- FW_CDebugConsole* FW_CDebugConsole::SetConsole(FW_CDebugConsole* console)
- {
- FW_CDebugConsole* prior = gDebugConsole;
- gDebugConsole = console;
- return prior;
- }
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::DoLogMessage
- //----------------------------------------------------------------------------------------
-
- void FW_CDebugConsole::DoLogMessage(const char* message)
- {
- PrivDebugMessage(message);
- }
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::DoDebugMessage
- //----------------------------------------------------------------------------------------
-
- void FW_CDebugConsole::DoDebugMessage(const char* message)
- {
- PrivDebugMessage(message);
- }
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::DoDebugger
- //----------------------------------------------------------------------------------------
-
- void FW_CDebugConsole::DoDebugger()
- {
- PrivDebugger();
- }
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::LogMessage
- //----------------------------------------------------------------------------------------
-
- void FW_CDebugConsole::LogMessage(const char* message)
- {
- FW_CDebugConsole *console = GetConsole();
- if (console)
- console->DoLogMessage(message);
- else
- PrivDebugMessage(message);
- }
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::DebugMessage
- //----------------------------------------------------------------------------------------
-
- void FW_CDebugConsole::DebugMessage(const char* message)
- {
- FW_CDebugConsole *console = GetConsole();
- if (console)
- console->DoDebugMessage(message);
- else
- PrivDebugMessage(message);
- }
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::Debugger
- //----------------------------------------------------------------------------------------
-
- void FW_CDebugConsole::Debugger()
- {
- FW_CDebugConsole *console = GetConsole();
- if (console)
- console->DoDebugger();
- else
- PrivDebugger();
- }
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::PrivDebugger
- //----------------------------------------------------------------------------------------
- void FW_CDebugConsole::PrivDebugger()
- {
- #if defined(FW_BUILD_WIN)
- #ifndef FW_BUILD_DOS
- ::DebugBreak();
- #endif
-
- #elif defined(FW_BUILD_MAC)
- ::Debugger();
- #endif
- }
-
- #if defined(FW_BUILD_MAC) && !defined(CGLUESUPPORTED)
- //----------------------------------------------------------------------------------------
- // fwctop
- //----------------------------------------------------------------------------------------
-
- static void fwctop(char* s)
- {
- int len = FW_PrimitiveStringLength(s);
- FW_PrimitiveCopyMemory(s, s+1, len);
- s[0] = len;
- }
-
- //----------------------------------------------------------------------------------------
- // fwptoc
- //----------------------------------------------------------------------------------------
-
- static void fwptoc(char* s)
- {
- int len = s[0];
- FW_PrimitiveCopyMemory(s+1, s, len);
- s[len] = 0;
- }
-
- //----------------------------------------------------------------------------------------
- // debugstr
- //----------------------------------------------------------------------------------------
- static void debugstr(const char *message)
- {
- fwctop((char*) message);
- DebugStr((const unsigned char*) message);
- fwptoc((char*) message);
- }
- #endif
-
- //----------------------------------------------------------------------------------------
- // FW_CDebugConsole::PrivDebugMessage
- //----------------------------------------------------------------------------------------
- void FW_CDebugConsole::PrivDebugMessage(const char *message)
- {
- #if defined(FW_BUILD_WIN)
- #ifndef FW_BUILD_DOS
- ::OutputDebugString(message);
- ::OutputDebugString("\n\r");
- ::DebugBreak();
- #endif
-
- #elif defined(FW_BUILD_MAC)
- ::debugstr(message);
- #endif
- }
-
-
- #endif
-
-